home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 106 - Proboard KEY Floppy - Must be in Drive 1.dsk / SWORD2.SEGS.SHK / SWORDS.2.AUX2.S < prev    next >
Text File  |  1989-01-26  |  20KB  |  516 lines

  1. ;  _________________________________________________________________________
  2. ; [_                                                                       _]
  3. ;  _]            Swords & Sorcery II -- The Journey Goes Onward           [_
  4. ; [_                                                                       _]
  5. ;  _]                       by Rubber Duck, @1987                         [_
  6. ; [______________________                           ________________________]
  7. ;                       _]   The ] DuckNet [ BBS   [_
  8. ;                      [_      (405)-355-9678       _]
  9. ;                       _]   300/1200/2400 24hrs   [_
  10. ;                      [_____________________________]
  11.  
  12. ; NOTE: Swords & Sorcery II is NOT a Public Domain program.  It is SHAREWARE.
  13. ;       You may copy and distribute S&S II freely, as long as you leave this
  14. ;       notice intact.  The ShareWare fee for S&S II is --> $0.00 <--, but I
  15. ;       do require that  you register your copy.  Send a  postcard with your
  16. ;       name, your handle/alias (if any), your BBS name, phone number, baud,
  17. ;       hours, version of ACOS, whether or not you have  the original Swords
  18. ;       and Sorcery on your system, and  any comments/suggestions/questions.
  19. ;       Send this to:  Rubber Duck, 4812 NE Winfield Cir, Lawton, OK, 73507. 
  20.  
  21. ; At last, lovers of might and magic,  the sequel to Swords & Sorcery.  S&S II
  22. ; provides an expanded and enhanced world for S&S players.  Many more options,
  23. ; much more detail and character individuality are here.  S&S II also supports
  24. ; the  one-key  options  that  are  now  the  GBBS  standard with version 1.3.
  25.  
  26. ; NOTES ABOUT THIS VERSION: Swords & Sorcery II v2.0    (SWORD2.V2.0.BNY)
  27.  
  28. ; This is the first OFFICIAL RELEASE version of S&S II.  This is NOT A BETA-
  29. ; TEST version, it is a COMPLETE game with an ULTIMATE GOAL.  Hopefully this
  30. ; is the first and LAST version of this program I'll have to put out.  I hate
  31. ; those nasty, creepy, crawly BUGS!
  32.  
  33. ; Thanks to Everyone who registered their Beta-Test copies of S&S II
  34.  
  35. ; Special Thanks to /steve schneider of The RainForest BBS for playtesting,
  36. ; betatesting, debugging, putting up with hassle and writing fixes.  Steve,
  37. ; your assistance and support are both priceless. . . thanks.
  38.  
  39. ; To install Swords & Sorcery II on your system:
  40. ;   1) Copy the files SWORDS.2.MAIN.S, SWORDS.2.AUX.S and SWORDS.2.AUX2.S to
  41. ;      your A2: drivespec.
  42. ;   2) Add this line to your system:
  43. ;         if i$="S2" then link "a2:swords.2.main"
  44. ;   3) Change the link.back routine to suit your system.
  45. ;   4) S&S II writes three files, S2.LOG, S2.LAST.PLAYER, and S2.WINNERS to
  46. ;      the b4: drivespec.  Change this to suit your system.
  47. ;   5) You are ready to go!
  48.  
  49. ; Swords & Sorcery II - Auxillary Seg 2
  50.  
  51. ; Professional BBS Custom Edition version 2.0jpe   01/19/89
  52.  
  53.  public find
  54.  public castle
  55.  public tower
  56.  
  57. link.back
  58.  link "a2:swords.2.main","return"
  59. link.term
  60.  recall "h:var"
  61.  link "a:main.seg","term1"
  62. link.dead
  63.  link "a2:swords.2.main","dead"
  64.  
  65. find
  66.  on nocar goto link.back
  67.  push link.back
  68.  if a$="weapon"  goto find.weapon
  69.  if a$="shield"  goto find.shield
  70.  if a$="magic"   goto find.magic
  71.  if a$="potion"  goto find.potion
  72.  if a$="scroll"  goto find.scroll
  73.  if a$="woman"   goto find.woman
  74.  if a$="dryad"   goto find.dryad
  75.  if a$="lantern" goto find.lantern
  76.  return
  77.  
  78. ; *** FINDS
  79.  
  80. find.weapon
  81.  x$=rnd$:x=random(100):x=x mod 5
  82.  if (xp>200) and (wp$<>"Enchanted Sword") then x=5
  83.  if x=0 or x=1 wf$="Silver Dagger": x$="a" :wf=3
  84.  if x=2 wf$="Iron Mace":            x$="an":wf=4
  85.  if x=3 wf$="Steel Sword":          x$="a" :wf=5
  86.  if x=4 wf$="Platinum Battleaxe":   x$="a" :wf=6
  87.  if x=5 wf$="Enchanted Sword":      x$="an":wf=7
  88.  if wf$=wp$ return
  89.  print \"You find "x$" "wf$"!!!"
  90.  if wp$="" then wp$=wf$:wp=wf:return
  91.  print \"(D)rop your "wp$" or (L)eave the "wf$
  92.  print  " behind? ";:clear key:get i$
  93.  if i$="D" print chr$(8);"Drop "wp$:else print chr$(8);"Leave"
  94.  if i$="D" then wp$=wf$:wp=wf:return
  95.  return
  96.  
  97. find.shield
  98.  x$=rnd$:x=random(100):x=x mod 2:x=x+1
  99.  if x=1 print \"You find a Good Shield!"
  100.  if x=2 print \"You find an Excellent Shield!"
  101.  if ((sh$="") and (x=1)) then sh$="Good Shield":sh=x:return
  102.  if ((sh$="") and (x=2)) then sh$="Excellent Shield":sh=x:return
  103.  print \"Take it instead of your "sh$"? ";:get i$
  104.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  105.  if i$<>"Y" then return:else sh=x
  106.  if x=1 then sh$="Good Shield":else sh$="Excellent Shield"
  107.  return
  108.  
  109. find.magic
  110.  x$=rnd$:x=random(100):x=x mod 12:x=x+1
  111.  if x>3 goto find.scroll
  112.  if x=1 sf$="Ring of Protection"
  113.  if x=2 sf$="Cloak of Protection"
  114.  if x=3 sf$="Mithril Shield"
  115.  print \"You find a "sf$"!"
  116.  if sh$="" then sh=x+1:sh$=sf$:return
  117.  print \"Take it instead of your "sh$"? ";:get i$
  118.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  119.  if i$<>"Y" return:else sh=x+1:sh$=sf$:return
  120.  
  121. find.potion
  122.  x$=rnd$:x=random(100):pf=x mod 6:x=x mod 4:pf=pf+1:x=x+1
  123.  print \"You find a strange ";
  124.  if x=1 print "vial ";
  125.  if x=2 print "bottle ";
  126.  if x=3 print "decanter ";
  127.  if x=4 print "jug ";
  128.  print "containing a Potion!"
  129.  if not(po) goto potion2
  130.  print \"You may only carry one Potion at a time."
  131.  print  "Do you want to drop your "po$"? ";:get i$
  132.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  133.  if i$<>"Y" return
  134. potion2
  135.  po=pf:po$="Unidentified Potion":return
  136.  
  137. find.scroll
  138.  gosub random:print \"You find a Magic Scroll!"
  139.  print \"(R)ead it or (T)hrow it away? ";:get i$
  140.  if i$="T" print chr$(8);"Throw":else print chr$(8);"Read"
  141.  if i$="T" print \"As you toss it aside, it crumbles to dust!":return
  142.  if x<=3 goto scroll3
  143.  x$=rnd$:x=random(100):x=x mod 6:x=x+1
  144.  if x=1 x$="Healing"
  145.  if x=2 x$="Strength"
  146.  if x=3 x$="Psyche"
  147.  if x=4 x$="Luck"
  148.  if x=5 x$="Teleport"
  149.  if x=6 x$="Fireball"
  150.  print \"The Scroll contains a "x$" spell!"
  151. scroll1
  152.  if s1=0 then s1$=x$:s1=x:goto scroll4
  153.  if s2=0 then s2$=x$:s2=x:goto scroll4
  154.  if s3=0 then s3$=x$:s3=x:goto scroll4
  155.  print \"You already know three spells!"
  156.  print \"Which shall you replace?"
  157.  print \"1) "s1$\"2) "s2$\"3) "s3$\"4) Throw Scroll away"
  158. scroll2
  159.  print \"Which? ";:get i$
  160.  if i$="1" print chr$(8);"Replace "s1$:s1=0:goto scroll1
  161.  if i$="2" print chr$(8);"Replace "s2$:s2=0:goto scroll1
  162.  if i$="3" print chr$(8);"Replace "s3$:s3=0:goto scroll1
  163.  print chr$(8);"Throw away"
  164.  print \"As you toss the Scroll away, it crumbles to dust!":return
  165. scroll3
  166.  print \"Oh, no!  This is a Cursed Scroll!"
  167.  if lu>2 then lu=lu-2:else lu=1
  168.  return
  169. scroll4
  170.  print \"You now know the "x$" spell.":return
  171.  
  172. find.woman
  173.  x$=rnd$:x=random(100):x=x mod 4
  174.  if x<=1 x$="an escaped slave girl"
  175.  if x=2  x$="a gypsy girl"
  176.  if x=3  x$="a wandering wench"
  177.  if x=4  x$="a traveling harlot"
  178.  if x=5  x$="a young maiden"
  179.  print \"You encounter "x$" who joins you."
  180.  wm=wm+1:gosub random:if x=0 goto dryad.offended
  181.  return
  182.  
  183. find.dryad
  184.  if (dr=1) return:else print \"You meet a lovely Dryad!"
  185.  print "She offers to guide you on your journey."
  186.  print \"Will you let her? ";:get i$
  187.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  188.  if i$<>"Y" gosub random:if x=0 goto dryad.offended
  189.  if i$<>"Y" return:else dr=1
  190.  return
  191.  
  192. find.lantern
  193.  if (ln) return
  194.  print \"You find a Lantern ";
  195.  x=random(100):x=x mod 3:x=x+1
  196.  if x=1 print "hanging from a tree limb!"
  197.  if x=2 print "lying in the path!"
  198.  if x=3 print "beside the body of a less fortunate adventurer!"
  199.  ln=1:return
  200.  
  201. dryad.offended
  202.  if (dr=0) return
  203.  print \"The Dryad is offended!"
  204.  print  "She curses you and leaves.":dr=0
  205.  if lu>2 then lu=lu-2:else lu=1
  206.  if xp>10 then xp=xp-3:else xp=1
  207.  return
  208.  
  209. ; seed random number generator and
  210. ; get a random number zero to nine
  211.  
  212. random
  213.  x$=rnd$:x=random(100):x=x mod 10:return
  214.  
  215. castle
  216.  on nocar goto link.term
  217.  au=0:print \"You have reached King Otto's castle!":goto castle3
  218. castle1
  219.  print \"Places to Visit in King Otto's castle:"
  220.  print \"  A)udience chamber"
  221.  print  "  H)ealer"
  222.  print  "  L)ook-out tower"
  223.  print  "  O)racle"
  224.  print  "  I)nventory"
  225.  print  "  E)xit the Castle"
  226. castle2
  227.  print \"You are in King Otto's castle."
  228. castle3
  229.  print \"Where do you go? ";:get i$
  230.  if i$=chr$(13) print " ";
  231.  if i$="?" or i$="/" print chr$(8);"Menu":goto castle1
  232.  if i$="" or i$=chr$(13) then i$="<CR>"
  233.  if i$="Q" print chr$(8)"Quit":goto link.back
  234.  if i$="E" print chr$(8)"Exit":goto link.back
  235.  if i$="I" print chr$(8)"Inventory":gosub inventory:goto castle2
  236.  if i$="A" print chr$(8)"Audience":goto audience
  237.  if i$="H" print chr$(8)"Healer":goto healer
  238.  if i$="L" print chr$(8)"Lookout Tower":goto lookout
  239.  if i$="O" print chr$(8)"Oracle":goto oracle
  240.  print \\"Sorry, "chr$(34);i$;chr$(34)" is not a command.":goto castle2
  241.  
  242. audience
  243.  if au=1 print \"You've had your audience with the King already!":goto castle2
  244.  au=1:print \"King Otto will see you now."
  245.  if (pr=1) print \"Ah, you've rescued my lovely daughter, the Princess!"
  246.  if (pr=1) print \"Please return her to me, now!":goto aud.0
  247.  print \"Ahh, greetings brave adventurer!  I regret I have so little time to"
  248.  print  "spare, but there are many courageous souls who wish an audience with"
  249.  print  "me today.  Speak quickly, then!"
  250. aud.0
  251.  print \"What is thy need?"
  252.  print \"  C)harge thou with a Quest"
  253.  if gp<51 print  "  G)ive thee some Gold"
  254.  if hp<16 print  "  H)eal thy Wounds"
  255.  if pr=1  print  "  R)eturn the Princess"
  256.  print \"Your reply? ";:get i$
  257.  if i$=chr$(13) then print " ";
  258.  if i$="R" print chr$(8)"Return the Princess":goto aud.1
  259.  if i$="C" print chr$(8)"Quest":goto aud.2
  260.  if i$="N" print chr$(8)"None":goto castle2
  261.  if i$="Q" print chr$(8)"Quit":goto castle2
  262.  if (i$="G") and (gp<51) print chr$(8)"Gold":goto aud.3
  263.  if (i$="H") and (hp<16) print chr$(8)"Heal":goto aud.4
  264.  if (i$<>"A") print \\"Sorry, "chr$(34)i$chr$(34)" isn't a command.":goto aud.0
  265.  if (pr=0) print chr$(8)\\"You can't do that yet!":goto aud.0
  266.  if (wp$<>"Enchanted Sword") print chr$(8)\\"You can't do that yet!":goto aud.0
  267.  print chr$(8)"Attack!"
  268.  print \"King Otto's kind visage melts away into mist, revealing the Evil One!"
  269.  print  "'So, fool!  You've discovered my secret!', it snarls.  'Now die!!!'"
  270.  mn$="The Evil One":mp=30:mx=50:md=14
  271. aud.0a
  272.  print \"The Princess screams in terror as...":gosub battle
  273.  print \"You have defeated the Evil One!!!!"
  274.  print chr$(7);chr$(7);chr$(7);chr$(7);
  275.  if not(info(2)) for x=75 to 25 step -2:tone (x,50):next
  276.  print \"You have won the game!!!!":close
  277.  print \"You and the Princess live happily"
  278.  print  "ever after as King and Queen!"
  279.  f$="b4:s2.winners":create f$:open #1,f$:append #1
  280.  print #1,a1$" "a2$" won on "date$
  281.  print #1,"finishing with "xp" xp, "hp" hp, and "gp" gold."\:close
  282.  link "a2:swords.2.main","exit2"
  283. aud.1
  284.  print \"The Princess runs joyfully to her father, then stops in mid-step..."
  285.  print \"The kind visage of King Otto disolves, revealing the Evil One!!!"
  286.  print  "'I shall return my future bride to her Tower, and find new Sorceror"
  287.  print  " to guard her,' it snarls, 'right after I dispose of YOU!!!!!"
  288.  mn$="The Evil One":mx=50:mp=30:md=14:pr=0:goto aud.0a
  289. aud.2
  290.  print \"Ah, finally someone will undertake this dangerous mission!  An evil"
  291.  print  "Sorceror has kidnapped my beautiful daughter, and is holding her in"
  292.  print  "his dark Tower.  You, my faithful subject, must rescue her and slay"
  293.  print  "the Sorceror.  The reward for you will be beyond imagining when you"
  294.  print  "return her to me.  Good luck, brave one!":goto castle2
  295. aud.3
  296.  gp=gp+30:gosub random:gp=gp+x:gosub random:gp=gp+x
  297.  print \"Here is a generous portion of mine own treasury.  May it speed you"
  298.  print  "on your journey, my loyal subject!":goto castle2
  299. aud.4
  300.  hp=hp+15
  301.  print \"King Otto waves his magic sceptre over you...you feel refreshed!"
  302.  print \"He says, 'Good health and long life to you, faithful subject!'"
  303.  goto castle2
  304.  
  305. healer
  306.  print \"Welcome to the Holy Healer!"
  307.  if hp>=25 print \"Thou art healthy!  Return only if ye are truly in need."
  308.  if hp>=25 goto castle2
  309.  y=30-hp:y=y*3
  310.  print \"Brave adventurer, we shall heal all thy wounds for a mere "y" gold."
  311.  print \"Wilt thou make this offering? ";:get i$
  312.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  313.  if i$<>"Y" print \"Then leave this place at once!":goto castle2
  314.  if y>gp then y=gp:print \"You have only "y" gold.  We will do what we can."
  315.  print \"Ahh....Ooohhh....Ummm.....":gp=gp-y:hp=hp+(y/3):if hp>30 hp=30
  316.  print \"The healing is complete.  Fare thee well.":goto castle2
  317.  
  318. lookout
  319.  print \"You reach the top of the tall Lookout Tower of the Castle."
  320.  print  "You see the vast expanses of King Otto's Kingdom, dotted"
  321.  print  "with an occasional Towne or Village.  In the distance looms"
  322.  print  "a dark, foreboding Tower.":goto castle2
  323.  
  324. oracle
  325.  print \"The Mystic Oracle greets you:"
  326.  print  "  'Welcome, O brave and adventurous Soul!"
  327.  print  "   The truths and wisdoms of the Universe"
  328.  print  "   are plain unto me.  Wilt thou make an"
  329.  print  "   offering of 30 gold so that I may share"
  330.  print  "   this knowledge with you?' ";:get i$
  331.  if i$="Y" print chr$(8);"Yes":else print chr$(8)"No"
  332.  if i$<>"Y" print \"Ah, then fare thee well...":goto castle2
  333.  if gp<30 print \"I see that you are in need of some truth!"
  334.  if gp<30 print  "The truth is, you haven't the gold!  Sorry!":goto castle2
  335.  gp=gp-30:gosub random:x=x+1
  336.  if x=1 print \"An Evil is upon the Land, and all is not as it seems..."
  337.  if x=2 print \"The Evil One is near at hand..."
  338.  if x=3 print \"The Evil One desires the Princess for his bride!"
  339.  if x=4 print \"Only a magicked weapon can harm the Evil One."
  340.  if x=5 print \"The Evil One cannot be touched while the Princess is captive."
  341.  if x=6 print \"There is no normal way to escape from the Evil One."
  342.  if x=7 print \"A drink is worth more than the contents of the cup!"
  343.  if x=8 print \"King Otto has been killed by the Evil One!"
  344.  if x=9 print \"The Evil One rules the Land!"
  345.  if x=10 print \"<A>ttack the Evil One and restore peace and tranquility!"
  346.  print \"The Mystic Oracle bids you farewell.":goto castle2
  347.  
  348. ; TOWER
  349.  
  350. tower
  351.  on nocar goto link.term
  352.  print \"You reach a tall tower!  At the top, the Princess waves to you!"
  353.  print \"The door is locked.";
  354.  if not (ky) print "  You must find a key.":goto towerexit
  355.  print "  Try your key? ";:get i$
  356.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  357.  if i$<>"Y" goto towerexit
  358.  gosub random:x=x+(lu/5)
  359.  if x<=4 print \"The door opens but the key breaks in the lock.":ky=0
  360.  if x>=5 print \"The door is unlocked and stands open!"
  361.  print \"Oh no!  As you enter the Tower, the door starts to close by itself!"
  362.  if lu<=4 print \"You are trapped in the Tower!":goto tower1
  363.  print \"Do you (E)scape before it closes or (R)emain in the Tower? ";:get i$
  364.  if i$="E" print chr$(8);"Escape":else print chr$(8);"Remain"
  365.  if i$="E" print \"You manage to escape!":xp=xp-2:goto towerexit
  366. tower1
  367.  print \"The door slams shut, as if by Magic!"
  368.  print \"Oh, no!  The Sorceror of the Tower!"
  369.  mn$="The Sorceror":mp=(hp+5):mx=30:md=4:gosub battle
  370.  print \"You have rescued the Princess!  She joins you.":pr=1
  371.  xp=xp+10:print \"With the Sorceror's death, the magic door becomes powerless."
  372.  print \"You are able to escape the Tower!":goto link.back
  373. towerexit
  374.  print \"The Princess weeps as you leave!":xp=xp-2:goto link.back
  375.  
  376. ; *** battle
  377.  
  378. ; Note: this BATTLE is designed for The Sorceror and The Evil One exclusively.
  379.  
  380. battle
  381.  print \"The battle begins!":ba=1
  382.  print \"You and "mn$" circle for position!"
  383. who.first
  384.  gosub random:x=x+(st/5)
  385.  if x<=5 gosub monstermove:gosub playermove:goto who.first
  386.  gosub playermove:gosub monstermove:goto who.first
  387.  
  388. battlexit
  389.  ba=0:return
  390.  
  391. playermove
  392.  print \"Your move!  ";
  393. player0
  394.  print "Your options are:"\
  395.  if (s1+s2+s3) print  "   C)ast a Spell"
  396.  if (po) print  "   D)rink a Potion"
  397.  print  "   A)ttack Enemy with ";
  398.  if (wp) print wp$:else print "Bare Hands"
  399.  print \"What do you do? ";:get i$
  400.  if i$="C" print chr$(8);"Cast a Spell"
  401.  if i$="D" print chr$(8);"Drink a Potion"
  402.  if i$="A" print chr$(8);"Attack Enemy"
  403.  if ((i$="F") and (mn$="The Sorceror")) print \"The door is shut!":goto player0
  404.  if ((i$="F") and (mx=50)) print \"There is NO ESCAPE!":goto player0
  405.  if i$="C" gosub cast.spell:goto endplayermove
  406.  if i$="D" gosub drink.potion:goto endplayermove
  407.  if i$<>"A" print \\"Sorry, ";chr$(34);i$;chr$(34);" is invalid."\:goto player0
  408.  gosub random:print \"You attack with your ";
  409.  if (wp) print wp$:else print "Bare Hands"
  410.  if ((mx=50) and (wp$<>"Enchanted Sword")) print \"You missed!":goto endplayerm
  411.  print:x=x+(st/3):if wp=5 then x=x+1
  412.  if x<=5 print "You missed!":goto endplayermove
  413.  gosub random:x=x/5:x=x+wp:x=x+(st/5)
  414.  if not(info(2)) tone (50,50):tone (50,50):else print chr$(7);
  415.  print "You hit him for "x" damage!!!"
  416.  if x>mp then mp=0:else mp=mp-x
  417. endplayermove
  418.  if mp<1 then pop:print "You've finished "mn$" off!!!!"
  419.  if mp<1 then xp=xp+mx:print \"You find 30 bags of gold!"
  420.  if mp<1 then gp=gp+30:goto battlexit
  421.  print "He has "mp" hit points now...":return
  422.  
  423. monstermove
  424.  print \mn$" attacks!"
  425.  gosub random:x=x+(lu/5)
  426.  if mn$="The Sorceror" then x=x-3:print \"He casts a Fireball!"
  427.  if x>5 print "He misses you!":return
  428.  print "A hit!!  ";:if not(info(2)) tone (200,100):else print chr$(7);chr$(7);
  429.  y=5-x:x=random(100):x=x mod md:x=x+1:x=x+(y/2)
  430.  if sh>=x then x=1:else x=x-sh
  431.  if x>hp then hp=0:else hp=hp-x
  432.  if hp<1 print \\"You've had it!":pop:pop:goto link.dead
  433.  if x<=2 print "Only a flesh wound...":goto endmonst
  434.  if x<=4 print "The wound is not bad...":goto endmonst
  435.  print "A vicious attack!"
  436. endmonst
  437.  print "You have "hp" hit points now...":return
  438.  
  439. ; *** inventory
  440.  
  441. inventory
  442.  print \'
  443. Stats:
  444.  Strength: 'st'  Psyche: 'ps'  Luck: 'lu'
  445.  Hit Points: 'hp'  Experience Points: 'xp'
  446.  
  447. Inventory:'
  448.  if (wp) print " "wp$
  449.  if (sh) print " "sh$
  450.  if (po) print " "po$
  451.  if (ky) print " Golden Key"
  452.  if (ln) print " Lantern"
  453.  if (s1) or (s2) or (s3) print " Spells:"
  454.  if (s1) print "  "s1$
  455.  if (s2) print "  "s2$
  456.  if (s3) print "  "s3$
  457.  if (pr) or (wm) or (dr) print " Companions:"
  458.  if (pr) print "  The Princess"
  459.  if (dr) print "  The Dryad Guide"
  460.  if (wm=1) print "  1 woman"
  461.  if (wm>1) print "  "wm" women"
  462.  if (gp=0) print " No gold"
  463.  if (gp=1) print " 1 bag of gold"
  464.  if (gp>1) print " "gp" bags of gold"
  465.  print:return
  466.  
  467. ; *** potions & spells
  468.  
  469. drink.potion
  470.  if not(po) print \"You aren't carrying a Potion!":return
  471.  print \"You are carrying: "po$
  472.  print \"Drink it now? ";:get i$
  473.  if i$="Y" print chr$(8);"Yes":else print chr$(8);"No"
  474.  if i$<>"Y" print \"You return the Potion to your pack.":return
  475.  print \"Gulp...gulp...gulp...";
  476.  if (po=1) print "ahh!  How refreshing!":hp=hp+10:if hp>30 hp=30
  477.  if (po=2) print "ugh!  Blah!  Poison!":if hp>10 hp=hp-10:else hp=1
  478.  if (po=3) print "umm!  How invigorating!":st=st+2:if st>10 st=10
  479.  if (po=4) print "ooh!  How enlightening!":ps=ps+2:if ps>10 ps=10
  480.  if (po=5) print "nnnuh!  You feel weak!":if st>2 st=st-2:else st=1
  481.  if (po=6) print "duh?  Duh?  Yuk!":if ps>2 ps=ps-2:else ps=1
  482.  po$="":po=0:return
  483.  
  484. cast.spell
  485.  if not(s1+s2+s3) print \"You don't know any Spells!":return
  486.  print \"You may cast the following:"
  487.  if (s1) print "1) "s1$
  488.  if (s2) print "2) "s2$
  489.  if (s3) print "3) "s3$
  490.  print "4) Don't cast anything"
  491.  print \"Which shall you cast? ";:get i$
  492.  x=val(i$):if (x=0) or (x=4) goto cast.none
  493.  if (x=1) and not(s1) goto cast.none
  494.  if (x=2) and not(s2) goto cast.none
  495.  if (x=3) and not(s3) goto cast.none
  496.  if x=1 sc$=s1$:sc=s1:s1$="":s1=0
  497.  if x=2 sc$=s2$:sc=s2:s2$="":s2=0
  498.  if x=3 sc$=s3$:sc=s3:s3$="":s3=0
  499. spell.effects
  500.  gosub random:x=x+(ps/2)
  501.  if x<=5 print \"Spell failed!":return
  502.  print \"Spell succeeded!"
  503.  if sc=1 print "You feel refreshed!":hp=hp+10:if hp>30 hp=30
  504.  if sc=2 print "You feel invigorated!":st=st+2:if st>10 st=10
  505.  if sc=3 print "You feel enlightened!":ps=ps+2:if ps>10 ps=10
  506.  if sc=4 print "You feel luckier!":lu=lu+2:if lu>10 lu=10
  507.  if sc=5 print "You are Teleported away!":if ba=1 pop:ba=0
  508.  if sc=5 link "a2:swords.2.aux","towne"
  509.  if sc<>6 return
  510.  if (ba=0) print "Your Fireball shoots away, wasted!":return
  511.  print "Your Fireball hits the "mn$"!!"
  512.  if (mp>4) then mp=mp-5:else mp=0
  513.  return
  514. cast.none
  515.  print chr$(8);"None":return
  516.